package cn.org.xuanguang.kepler.hormos.rdb.jpa;

import cn.org.xuanguang.kepler.hormos.rdb.jpa.generation.DefaultCreatorProvider;
import cn.org.xuanguang.kepler.hormos.rdb.jpa.generation.JPAProvider;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * 业务字段
 * 用来定义创建者，通常用来记录创建者信息
 * 为了增加灵活性，通常使用Providor方法来获取动态实现类
 *
 * @author xuanguang
 * @date 2021/11/30
 * @since 1.0.0
 */
@Target({METHOD, FIELD})
@Retention(RUNTIME)
public @interface Creator {

    Class<? extends JPAProvider> provider() default DefaultCreatorProvider.class;
}
